﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class ENEventosAleatorios
    {
        //atributos
        private int id_evaleat;
        private string nombre_evaleat;
        private double efecto_evaleat;        
        
        CADEventosAleatorios cadEventosAleatorios = new CADEventosAleatorios();//declaramos el CAD

        //propiedades
        public int Id_evaleat
        {
            get{ return id_evaleat; }
            set{ id_evaleat=value; }
        }
        
        public string Nombre_evaleat 
        {
            get{ return nombre_evaleat; }
            set { nombre_evaleat = value; }
        }

        public double Efecto_evaleat
        {
            get { return efecto_evaleat; }
            set { efecto_evaleat = value; }
        }
        
        public ENEventosAleatorios()//Constructor por defecto
	    {
            id_evaleat=0;
	        nombre_evaleat="";
            efecto_evaleat=0;
        }

        public ENEventosAleatorios(int id, string nombre, double efecto)//constructor sobrecargado
        {
            id_evaleat=id;
	        nombre_evaleat=nombre;
            efecto_evaleat=efecto;
        }

        public ENEventosAleatorios(DataRow drEventoAleatorio)
        {
            id_evaleat = int.Parse(drEventoAleatorio["ID"].ToString());
            nombre_evaleat = drEventoAleatorio["Nombre"].ToString();
            efecto_evaleat = double.Parse(drEventoAleatorio["Efecto"].ToString());
        }
        
        //METODOS
        public DataSet ObtenerListaEventosAleatorios()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosAleatorios.ObtenerTablaEventosAleatorios();
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerNombresEventosAleatorios()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosAleatorios.ObtenerNombreEventosAleatorios();
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public bool ActualizarEventosAleatorios(DataSet dsEventosAleatorios)
        {
            bool resultado = false;

            try
            {
                resultado = cadEventosAleatorios.ActualizarEventosAleatorios(dsEventosAleatorios);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        public bool InsertarEventoAleatorio(bool actualizar = false)
        {
            bool resultado = false;

            try
            {
                DataSet dsEventosAleatorios = cadEventosAleatorios.ObtenerTablaEventosAleatorios();
                DataRow dr;
                
                if (actualizar)
                {
                    dr = dsEventosAleatorios.Tables["Eventos_Aleatorios"].Rows.Find(id_evaleat.ToString());
                }
                else
                {
                    dr = dsEventosAleatorios.Tables["Eventos_Aleatorios"].NewRow();
                }

                dr["Nombre"] = nombre_evaleat.ToString();
                dr["Efecto"] = efecto_evaleat.ToString();
                
                if (actualizar)
                    dr.EndEdit();
                else
                    dsEventosAleatorios.Tables["Eventos_Aleatorios"].Rows.Add(dr);

                resultado = cadEventosAleatorios.ActualizarEventosAleatorios(dsEventosAleatorios);

            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public void EditarEventosAleatorios()
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosAleatorios.EditarTablaEventosAleatorios(this.nombre_evaleat, this.efecto_evaleat);

            }

            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public bool BorrarEventoAleatorio()
        {
            bool resultado = false;

            try
            {
                DataSet dsEventosAleat = cadEventosAleatorios.ObtenerTablaEventosAleatorios();

                dsEventosAleat.Tables["Eventos_Aleatorios"].Rows.Find(id_evaleat.ToString()).Delete();

                resultado = cadEventosAleatorios.ActualizarEventosAleatorios(dsEventosAleat);
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet BuscarEventosAleatorios(String nombre)
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadEventosAleatorios.BuscarEventosAleatorios(nombre);

            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }










      
      /* public string NuevoExamen()
        {
            return cadExamenes.InsertarExamen(this);
        }

        //método que devuelve toda la tabla Examenes en un DataSet
        public DataSet ObtenerTodosExamenes(ref string m)
        {
            return cadExamenes.ObtenerTablaExamenes(ref m);
        }

        //método para buscar examenes
        public DataSet BuscarExamenes(string numReferencia, string idioma, string nivel, string turno, DateTime fechaExamenD, string evaluacion)
        {
            return cadExamenes.BuscarExamenes(numReferencia,idioma,nivel,turno/*,fechaExamen,evaluacion);
        }

        //método para modificar un examen
        public string ModificarExamenes(string numReferencia, string idioma, string nivel, string turno, DateTime fechaExamen, string evaluacion)
        {
            return cadExamenes.ModificarExamenes(numReferencia,idioma,nivel,turno,fechaExamen,evaluacion);
        }

        //método para dar de baja un examen
        public string BajaExamenes(string numReferencia)
        {
            return cadExamenes.EliminarExamenes(numReferencia);
        }*/
    }
}
